GdkWin32: Avoid Using Deprecated API
authorChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 30 Jul 2013 03:06:57 +0000 (11:06 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 14 Aug 2013 00:03:19 +0000 (08:03 +0800)
Update the Win32 GDK backend to not use the deprecated GDK APIs.

https://bugzilla.gnome.org/show_bug.cgi?id=705068

gdk/win32/gdkdevice-win32.c
gdk/win32/gdkdevicemanager-win32.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkwindow-win32.c

index 36f010740af0d8d971a3c9891db9006f66f0bc57..53a5daf434556cf4122c9f4b57c47effa7b2aefb 100644 (file)
@@ -119,7 +119,7 @@ gdk_device_win32_get_state (GdkDevice       *device,
 {
   gint x_int, y_int;
 
-  gdk_window_get_pointer (window, &x_int, &y_int, mask);
+  gdk_window_get_device_position (window, device, &x_int, &y_int, mask);
 
   if (axes)
     {
index 4d26b24a81ceb5a8bec91d5404898b2adf22aaea..fa064bb2a7a5693339c2e6e1e4d3e9a00004dc3a 100644 (file)
@@ -885,6 +885,7 @@ _gdk_input_other_event (GdkEvent  *event,
   GdkDisplay *display;
   GdkDeviceWintab *source_device = NULL;
   GdkDeviceGrabInfo *last_grab;
+  GdkDevice *device = NULL;
   GdkEventMask masktest;
   guint key_state;
   POINT pt;
@@ -907,7 +908,8 @@ _gdk_input_other_event (GdkEvent  *event,
 
   device_manager = GDK_DEVICE_MANAGER_WIN32 (gdk_display_get_device_manager (_gdk_display));
 
-  window = gdk_window_at_pointer (&x, &y);
+  device = gdk_event_get_device (event);
+  window = gdk_device_get_window_at_position (device, &x, &y);
   if (window == NULL)
     window = _gdk_root;
 
index afa20742d805339b4a9577d023a282ae14751174..31eb5120ad0785464be3b22639fe1c19f6129d92 100644 (file)
@@ -2713,17 +2713,13 @@ gdk_event_translate (MSG  *msg,
       /* Break grabs on unmap or minimize */
       if (windowpos->flags & SWP_HIDEWINDOW || 
          ((windowpos->flags & SWP_STATECHANGED) && IsIconic (msg->hwnd)))
-       {
-         if (pointer_grab != NULL)
-           {
-             if (pointer_grab->window == window)
-               gdk_pointer_ungrab (msg->time);
-           }
+      {
+        GdkDevice *device = gdk_device_manager_get_client_pointer (device_manager);
 
-         if (keyboard_grab != NULL &&
-             keyboard_grab->window == window)
-           gdk_keyboard_ungrab (msg->time);
-       }
+        if ((pointer_grab != NULL && pointer_grab->window == window) ||
+            (keyboard_grab != NULL && keyboard_grab->window == window))
+          gdk_device_ungrab (device, msg -> time);
+    }
 
       /* Send MAP events  */
       if ((windowpos->flags & SWP_SHOWWINDOW) &&
@@ -3115,15 +3111,12 @@ gdk_event_translate (MSG  *msg,
       break;
 
     case WM_NCDESTROY:
-      if (pointer_grab != NULL)
-       {
-         if (pointer_grab->window == window)
-           gdk_pointer_ungrab (msg->time);
-       }
-
-      if (keyboard_grab &&
-          keyboard_grab->window == window)
-       gdk_keyboard_ungrab (msg->time);
+      if ((pointer_grab != NULL && pointer_grab -> window == window) ||
+          (keyboard_grab && keyboard_grab -> window == window))
+      {
+        GdkDevice *device = gdk_device_manager_get_client_pointer (device_manager);
+        gdk_device_ungrab (device, msg -> time);
+      }
 
       if ((window != NULL) && (msg->hwnd != GetDesktopWindow ()))
        gdk_window_destroy_notify (window);
index 273e53cf7b543158441cd0144c8eaa1e3443b778..bf32dbe73e8b3952c4ca5a00943dbba80df5a61d 100644 (file)
@@ -2655,7 +2655,7 @@ gdk_win32_window_begin_resize_drag (GdkWindow     *window,
   /* Must break the automatic grab that occured when the button was
    * pressed, otherwise it won't work.
    */
-  gdk_display_pointer_ungrab (_gdk_display, 0);
+  gdk_device_ungrab (device, 0);
 
   switch (edge)
     {
@@ -2722,7 +2722,7 @@ gdk_win32_window_begin_move_drag (GdkWindow *window,
   /* Must break the automatic grab that occured when the button was pressed,
    * otherwise it won't work.
    */
-  gdk_display_pointer_ungrab (_gdk_display, 0);
+  gdk_device_ungrab (device, 0);
 
   DefWindowProcW (GDK_WINDOW_HWND (window), WM_NCLBUTTONDOWN, HTCAPTION,
                  MAKELPARAM (root_x - _gdk_offset_x, root_y - _gdk_offset_y));